#include "CAttribute.h"
#include <lampe/StringUtils.h>
namespace lampe{
namespace xml{

/***
* Констурктор
* */
CAttribute::CAttribute(){
	setName("");
	setString("");
}

/***
* Констурктор
*
* @param name имя атрибута
* */
CAttribute::CAttribute(String Name){
	setName(Name);
	setString("");
}

/***
* Констурктор
*
* @param name имя атрибута
* @param value значение атрибута
* */
CAttribute::CAttribute(String Name,String value){
	setName(Name);
	setString(value);
}

/***
* Деструктор
* */
CAttribute::~CAttribute() {
	//nothing
}

/***
* Возвращяет имя атрибута
*
* @return имя атрибута
* */
String CAttribute::getName(){
	return name;
}

String CAttribute::toXML(){
	return getName()+"=\""+getString()+"\"";
}

/***
* Устанавливает имя атрибута
*
* @param value имя атрибута, которое нужно устанавить
* */
void CAttribute::setName(String value){
    name=str::toLowerCase(value);
}

void CAttribute::serialization(stream::IWriter*stream){
    stream->writeStringc(getName());
    IDynVariable::serialization(stream);
}

void CAttribute::deserialization(stream::IReader*stream){
    setName(stream->readStringc());
    IDynVariable::deserialization(stream);
}

IAttribute*createAttribute(String name){
	CAttribute*res=new CAttribute();
	res->setName(name);
	return res;
}

}//namespace xml
}//namespace lampe
